One of the first methods of bidirectional communication was used by Pacific Fast Mail (PFM™) for sensing the position of a steam model train drive wheel. The wheel sensor cam would produce a short circuit condition to a high frequency signal applied to the track. The PFM sound system would detect this RF short circuit condition as the drive wheel on the model moved to different positions and apply a chuff (steam exhaust) audio signal to the track which was then applied to a speaker inside the moving locomotive. This type of bidirectional communication did not use an active signal sent from a remote object (the locomotive) but rather a condition in the locomotive that was passively polled by the RF signal sent from the control system to determine the locomotives wheel position. In passive polling communication systems, the receiver of the bidirectional information sends a signal to the remote object and looks at the condition of the sending signal for information. In active polling communication, the locomotive responds to a query from the command station and responds with an active signal sent by the remote object back to the command station.
The NMRA Digital Command Control System does have a method of bidirectional communication used in Service Mode. Service Mode is essentially a programming mode where the command station can program various behavior parameters (called Configuration Variables, CV's) into the locomotive and also read out CV values stored in the locomotives decoders using Acknowledgement pulses (called Acks). Acknowledgements are performed by the decoder affecting the load a locomotive presents to the command station to indicate a single bit response to a query. For example, the command station might query a decoder if the value of a certain CV 8-bit register is “one”. If there is no acknowledgement, the next query asks “is it 2”. If there is no Ack the next query asks, “is it 3” and so on until it gets an Ack to confirm the value. This is a slow procedure since it may require a full 256 queries before it gets an Ack. This is a passive polling method of doing bidirectional communication.